﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Librerias;
using System.Collections;

namespace eCampus
{
    /// <summary>
    /// Formulario para crear Bibliografia de una asignatura
    /// </summary>
    public partial class FormBibliografiaCrearModificar : Form
    {
        /// <summary>
        /// variables
        /// </summary>
        bool esModificar;
        string asignatura;
        ENBibliografia b =new  ENBibliografia();
        ArrayList listaEnlace;
       
       /// <summary>
       /// Constructor parametrizado
       /// </summary>
       /// <param name="asi">asignatura</param>
        public FormBibliografiaCrearModificar(string asi)
        {
            asignatura = asi;
            InitializeComponent();
        }

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        /// <param name="usu"></param>
          public FormBibliografiaCrearModificar(ENBibliografia usu)
        {
            esModificar = true;      
            InitializeComponent();
            b = usu;
           
        }

        private void tbBiblio_TextChanged(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// Dar de alta una bibliografia
        /// </summary>
        /// <param name="sender">btOk</param>
        /// <param name="e">Click</param>
        private void btOk_Click(object sender, EventArgs e)
        {
             errorProviderIsbn.Clear();
             bool error = false;
            //btModificar.Visible = false;
               ENBibliografia b=new ENBibliografia();
            if (tbTitulo.Text == "" && lbEnlaces.Items.Count == 0)
                MessageBox.Show("Introduce un Referencia a bibliografia o enlace");
            else
            {
                try
                {
                    string enlaces = string.Empty;
                    int i = 0;
                    foreach (object item in lbEnlaces.Items)
                    {
                        if (i > 0)
                            enlaces = enlaces + "-" + item.ToString();
                        else
                            enlaces = item.ToString();
                        i++;
                    }

                    if (maskedTextBoxIsbn.Text != "   -  -    -   -")
                    {
                        if (!b.ValidarIsbn(maskedTextBoxIsbn.Text.ToString()))
                        {
                            errorProviderIsbn.SetError(maskedTextBoxIsbn, "13 digitos");
                            error = true;
                            errorProviderIsbn.Clear();
                        }
                        
                    }

                    if (tbweb.Text != "")
                    {
                        if (!b.ValidarUrl(tbweb.Text.ToString()))
                        {
                            errorProviderIsbn.SetError(tbweb, "No es url valida");
                            error = true;
                        }
                    }

                    if (error == false)
                    {
                        b = new ENBibliografia(asignatura, enlaces, tbTitulo.Text, tbAutor.Text, tbEdicion.Text, maskedTextBoxIsbn.Text, tbweb.Text, rtbDatos.Text);
                        b.CrearBibliografia();
                        MessageBox.Show("Bibliografia creada");

                        Close();
                    }

                }
                catch (Excepcion_Conexion ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }

            
        }
        /// <summary>
        /// Carga cuando se carga el formulario
        /// </summary>
        /// <param name="sender">FormBibliografiaCrearModificar</param>
        /// <param name="e">Load</param>

        private void FormBibliografiaCrearModificar_Load(object sender, EventArgs e)
        {
          maskedTextBoxIsbn.Mask = "000-00-0000-000-0";                   
           
            if (esModificar)
            {
                //btOK.Text = "Actrualizar";
                label10.Text = b.Id.ToString();
                //label11.Text = b.Asig;
                tbTitulo.Text = b.Titulo;
                tbAutor.Text = b.Autor;
                tbEdicion.Text = b.Edicion;
                maskedTextBoxIsbn.Text = b.Isbn;
                tbweb.Text = b.Web;
                rtbDatos.Text = b.Datos;
                btOK.Visible = false;

                string[] words =b.Enlace.Split('-');
                foreach (string word in words)
                {
                    lbEnlaces.Items.Add(word);
                }
             
            }
            else//es crear
            {
                btModificar.Visible = false;
                
             }
                
            }
     
        /// <summary>
        /// Modifica la bibiografia
        /// </summary>
        /// <param name="sender">btModificar</param>
        /// <param name="e">Click</param>
        private void btModificar_Click(object sender, EventArgs e)
        {
            try
            {
                b.Id = int.Parse(label10.Text);
                b.Asig = label11.Text;
                b.Enlace = tbEnlace.Text;
                b.Titulo = tbTitulo.Text;
                b.Autor = tbAutor.Text;
                b.Edicion = tbEdicion.Text;
                b.Isbn = maskedTextBoxIsbn.Text;
                b.Web = tbweb.Text;
                b.Datos = rtbDatos.Text;

                 string enlaces = string.Empty;
                    int i = 0;
                    foreach (object item in lbEnlaces.Items)
                    {
                        if (i > 0)
                            enlaces = enlaces + "-" + item.ToString();
                        else
                            enlaces = item.ToString();
                        i++;
                    }

                                            
               
                b.ModificarBibliografia();
                MessageBox.Show("Bibliografia modificada");
                
            }
            catch (Excepcion_Conexion ex)
            {
                MessageBox.Show(ex.ToString());
            }
            Close();
        }
        /// <summary>
        /// Cierra la pantalla 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btSalir_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// Agrega referencia al listbox
        /// </summary>
        /// <param name="sender">btNueva</param>
        /// <param name="e">Click</param>
        private void btNueva_Click(object sender, EventArgs e)
        {
            listaEnlace = new ArrayList();
            if(tbEnlace.Text!="") 
             lbEnlaces.Items.Add(tbEnlace.Text);
          tbEnlace.Clear();
           
                              
        }

        #region usabiliad

        private void lbEnlaces_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(lbEnlaces.SelectedIndex>=0)
           tbEnlace.Text= lbEnlaces.SelectedItem.ToString();
           
        }

        private void btQuitar_Click(object sender, EventArgs e)
        {
          
            
                lbEnlaces.Items.Remove(lbEnlaces.SelectedItem);
                tbEnlace.Clear();            

                             
        }

        private void label10_Click(object sender, EventArgs e)
        {

        }
        private void groupBox2_Enter(object sender, EventArgs e)
        {

        }


        #endregion

    }
    }

